iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
Software Development

學會 Python 不可怕:我每天學一點的 30 天筆記系列 第 19

Day19 : 例外處理 – try/except、常見錯誤處理

  • 分享至 

  • xImage
  •  

寫程式的時候,難免都會遇到錯誤,例如:

  • 除以零 (ZeroDivisionError)
  • 找不到檔案 (FileNotFoundError)
  • 使用者輸入非數字 (ValueError)

如果不處理這些錯誤,程式會直接「當掉」。
例外處理就是一種「保護程式」的機制,讓錯誤發生時,程式依然能繼續運行。

1. 基本語法:try / except
https://ithelp.ithome.com.tw/upload/images/20251003/20178872JXD3H391P9.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251003/20178872EpUiwHFDI4.png

  • try: 表示「我要試著執行這裡的程式碼」
  • except: 表示「如果 try 裡的程式碼發生錯誤,就執行這裡」
  • print("發生錯誤!"):告訴使用者輸入有誤,不會讓程式直接崩潰

2. 捕捉特定錯誤
可以指定要處理哪一種錯誤:
https://ithelp.ithome.com.tw/upload/images/20251003/20178872tJRX1p6ORQ.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251003/201788726wiIjiPv23.png

  • try: → 嘗試執行
  • ValueError = 當輸入的東西不能轉換成整數時就會出錯,例如:輸入 hello 或 3.5
  • ZeroDivisionError = 當輸入的數字是 0,程式做 10 / 0 會出錯

3. else 與 finally
else:如果沒有錯誤,就會執行這段程式碼
finally:不管有沒有錯誤,最後都會執行(通常用來關檔案、釋放資源)
https://ithelp.ithome.com.tw/upload/images/20251003/201788728npTJ6pHMo.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251003/20178872xiBFeFubsn.png

4. 常見錯誤類型

  • ValueError : 資料型態不正確(例:把字串轉數字失敗)
  • ZeroDivisionError : 除以 0
  • FileNotFoundError : 開啟不存在的檔案
  • IndexError : 存取不存在的清單索引
  • KeyError : 存取不存在的字典鍵

5. 小練習
https://ithelp.ithome.com.tw/upload/images/20251003/20178872HVfTGDzgfI.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251003/20178872j7dPJbciQS.png

📌 重點總結:

  1. try/except:用來捕捉並處理錯誤

  2. 可以針對不同錯誤類型做對應處理

  3. else:只有沒有錯誤時才執行

  4. finally:不管有沒有錯誤都會執行


上一篇
Day18 : 模組與套件 – import、常用模組
下一篇
Day20 : 檔案讀寫 – 讀取文字檔、寫入檔案
系列文
學會 Python 不可怕:我每天學一點的 30 天筆記21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言